/* GUI CONVERTED from rcrp13.p (converter v1.76) Mon Oct  8 03:33:19 2001 */
/* rcrp13.p - SHIPPER/PICK LIST PRINT                                        */
/* Copyright 1986-2002 QAD Inc., Carpinteria, CA, USA.                       */
/* All rights reserved worldwide.  This is an unpublished work.              */
/* $Revision: 1.28 $                                                         */
/*V8:ConvertMode=Report                                                      */
/* REVISION: 7.5      LAST MODIFIED: 07/19/95   BY: GWM      *J049*          */
/* REVISION: 8.5      LAST MODIFIED: 04/22/96   BY: GWM      *J0K0*          */
/* REVISION: 8.5      LAST MODIFIED: 04/24/96   BY: GWM      *J0K9*          */
/* REVISION: 8.5      LAST MODIFIED: 04/30/96   BY: jpm      *J0KK*          */
/* REVISION: 8.5      LAST MODIFIED: 06/11/96   BY: rxm      *G1XQ*          */
/* REVISION: 8.5      LAST MODIFIED: 07/25/96   BY: jpm      *J11D*          */
/* REVISION: 8.5      LAST MODIFIED: 07/29/96   BY: ame      *J12R*          */
/* REVISION: 8.6      LAST MODIFIED: 09/13/96   BY: *K003* Vinay Nayak-Sujir */
/* REVISION: 8.6      LAST MODIFIED: 10/03/96   BY: *K003* Kieu Nguyen       */
/* REVISION: 8.6      LAST MODIFIED: 10/31/96   BY: *K003* Steve Goeke       */
/* REVISION: 8.6      LAST MODIFIED: 12/06/96   BY: *K030* Vinay Nayak-Sujir */
/* REVISION: 8.6      LAST MODIFIED: 12/30/96   BY: *K03V* Vinay Nayak-Sujir */
/* REVISION: 8.6      LAST MODIFIED: 01/26/97   BY: *K03J* Vinay Nayak-Sujir */
/* REVISION: 8.6      LAST MODIFIED: 01/28/97   BY: *K04R* Kieu Nguyen       */
/* REVISION: 8.6      LAST MODIFIED: 03/15/97   BY: *K04X* Steve Goeke       */
/* REVISION: 8.6      LAST MODIFIED: 04/02/97   BY: *K09H* Vinay Nayak-Sujir */
/* REVISION: 8.6      LAST MODIFIED: 04/07/97   BY: *J1M3* Jean Miller       */
/* REVISION: 8.6      LAST MODIFIED: 06/20/97   BY: *H19N* Aruna Patil       */
/* REVISION: 8.6      LAST MODIFIED: 08/07/97   BY: *J1YK* Aruna Patil       */
/* REVISION: 8.6      LAST MODIFIED: 09/12/97   BY: *J20T* Aruna Patil       */
/* REVISION: 8.6E     LAST MODIFIED: 02/23/98   BY: *L007* A. Rahane         */
/* REVISION: 8.6E     LAST MODIFIED: 05/15/98   BY: *K1JN* Niranjan R.       */
/* REVISION: 8.6E     LAST MODIFIED: 07/20/98   BY: *H1MC* Manish K .        */
/* REVISION: 8.6E     LAST MODIFIED: 08/05/98   BY: *J2VP* Manish K .        */
/* REVISION: 8.6E     LAST MODIFIED: 10/04/98   BY: *J314* Alfred Tan        */
/* REVISION: 8.6E     LAST MODIFIED: 01/28/99   BY: *J38Z* Reetu Kapoor      */
/* REVISION: 9.0      LAST MODIFIED: 02/06/99   BY: *M06R* Doug Norton       */
/* REVISION: 9.0      LAST MODIFIED: 03/13/99   BY: *M0BD* Alfred Tan        */
/* REVISION: 9.0      LAST MODIFIED: 06/22/99   BY: *K21B* Reetu Kapoor      */
/* REVISION: 9.0      LAST MODIFIED: 08/17/99   BY: *K227* J. Fernando       */
/* REVISION: 9.1      LAST MODIFIED: 12/28/99   BY: *N05X* Surekha Joshi     */
/* REVISION: 9.1      LAST MODIFIED: 03/24/00   BY: *N08T* Annasaheb Rahane  */
/* REVISION: 9.1      LAST MODIFIED: 06/26/00   BY: *M0NY* Falguni Dalal     */
/* REVISION: 9.1      LAST MODIFIED: 08/12/00   BY: *N0KP* myb               */
/* $Revision: 1.28 $    BY: Nikita Joshi          DATE: 09/07/01  ECO: *M1JZ*  */
/******************************************************************************/
/* All patch markers and commented out code have been removed from the source */
/* code below. For all future modifications to this file, any code which is   */
/* no longer required should be deleted and no in-line patch markers should   */
/* be added.  The ECO marker should only be included in the Revision History. */
/******************************************************************************/

/* DISPLAY TITLE */


/*GUI preprocessor directive settings */
&SCOPED-DEFINE PP_GUI_CONVERT_MODE REPORT

{mfdtitle.i "b+ "}

/* ********** Begin Translatable Strings Definitions ********* */

&SCOPED-DEFINE rcrp13_p_1 "Ship-From"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_2 "Ship-To/Dock"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_3 "Shipper Sequence ID"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_4 "Include Sales Order Packing List Comments"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_5 "Number"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_6 "Include Pre-Shipper/Shipper Comments"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_7 "Print Sales Order Detail"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_8 "Include Printed Pre-Shippers/Shippers"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_9 "Print Features and Options"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_10 "Print Pre-Shippers/Shippers"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_11 "Pre-Shipper/Shipper"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_12 "Assign Shipper Numbers"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_13 "Address List Type"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_14 "Display Quantity In SO UM"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcrp13_p_15 "Company Address"
/* MaxLen:23 Comment: */

&SCOPED-DEFINE rcrp13_p_16 "Print Lot/Serial Numbers"
/* MaxLen:32 Comment: */

/* ********** End Translatable Strings Definitions ********* */

{sonrmdat.i}

/* LOCAL VARIABLES */

define variable ship           like abs_id label {&rcrp13_p_5} no-undo.
define variable ship1          like abs_id no-undo.
define variable shipfrom       like abs_shipfrom label {&rcrp13_p_1} no-undo.
define variable shipfrom1      like abs_shipfrom no-undo.
define variable shipto         like abs_shipto label {&rcrp13_p_2} no-undo.
define variable shipto1        like abs_shipto no-undo.
define variable listtype       as character label {&rcrp13_p_13} no-undo.
define variable listtype1      as character no-undo.
define variable invmov         like abs_inv_mov no-undo.
define variable invmov1        like abs_inv_mov no-undo.
define variable fmt            like abs_format no-undo.
define variable fmt1           like abs_format no-undo.
define variable lang           like so_lang no-undo.
define variable lang1          like lang no-undo.
define variable carr           like absc_carrier no-undo.
define variable carr1          like absc_carrier no-undo.
define variable printed_prev   like mfc_logical label {&rcrp13_p_8} no-undo.
define variable ship_comments  like mfc_logical initial true
   label {&rcrp13_p_6} no-undo.
define variable pack_comments  like mfc_logical initial true
   label {&rcrp13_p_4} no-undo.
define variable comp_addr      like ad_addr label {&rcrp13_p_15} no-undo.
define variable yn             like mfc_logical no-undo.
define variable abs_recid      as recid no-undo.
define variable assign_shipper like mfc_logical
   label {&rcrp13_p_12} initial true no-undo.
define variable seq_id         like abs_nr_id label {&rcrp13_p_3} no-undo.
define variable pick_ship      like mfc_logical format {&rcrp13_p_11}
   label {&rcrp13_p_10} initial true no-undo.
define variable range          as character no-undo.
define variable range1         as character no-undo.
define variable shipgrp        like sg_grp no-undo.
define variable nrseq          like shc_ship_nr_id no-undo.
define variable is_internal    like mfc_logical no-undo.
define variable errorst        like mfc_logical no-undo.
define variable errornum       as integer no-undo.
define variable id_length      as integer no-undo.
define variable printed_opt    like mfc_logical label {&rcrp13_p_9} no-undo.
define variable v_abort        like  mfc_logical no-undo.
define variable l_print_sodet  like mfc_logical initial no
   label {&rcrp13_p_7} no-undo.
define variable l_so_um        like mfc_logical label {&rcrp13_p_14} no-undo.
define variable v_skipped      as integer no-undo.
define variable l_print_lotserials like mfc_logical initial no
   label {&rcrp13_p_16} no-undo.
define variable l_undoshp like mfc_logical no-undo.

/* BUFFERS */
define buffer abs_temp for abs_mstr.

define temp-table t_absid no-undo
   field t_abs_id        like abs_id
   field t_abs_recid     as recid
   field t_abs_printed   as character
   index t_abs_id is primary unique t_abs_id.


/*GUI preprocessor Frame A define */
&SCOPED-DEFINE PP_FRAME_NAME A

FORM /*GUI*/ 
   
 RECT-FRAME       AT ROW 1 COLUMN 1.25
 RECT-FRAME-LABEL AT ROW 1 COLUMN 3 NO-LABEL VIEW-AS TEXT SIZE-PIXELS 1 BY 1
 SKIP(.1)  /*GUI*/
shipfrom           colon 25
   shipfrom1          colon 52 label {t001.i}
   shipto             colon 25
   shipto1            colon 52 label {t001.i}
   ship               colon 25
   ship1              colon 52 label {t001.i}
   invmov             colon 25
   invmov1            colon 52 label {t001.i}
   fmt                colon 25
   fmt1               colon 52 label {t001.i}
   lang               colon 25
   lang1              colon 52 label {t001.i}
   listtype           colon 25
   listtype1          colon 52 label {t001.i}
   carr               colon 25
   carr1              colon 52 label {t001.i}
   pick_ship          colon 43
   printed_prev       colon 43
   comp_addr          colon 68
   printed_opt        colon 43
   l_print_lotserials colon 74
   assign_shipper     colon 43
   seq_id             colon 43
   ship_comments      colon 43
   pack_comments      colon 43
   l_print_sodet      colon 43
   l_so_um            colon 43
with frame a side-labels width 80 NO-BOX THREE-D /*GUI*/.

 DEFINE VARIABLE F-a-title AS CHARACTER INITIAL "".
 RECT-FRAME-LABEL:SCREEN-VALUE in frame a = F-a-title.
 RECT-FRAME-LABEL:HIDDEN in frame a = yes.
 RECT-FRAME:HEIGHT-PIXELS in frame a =
  FRAME a:HEIGHT-PIXELS - RECT-FRAME:Y in frame a - 2.
 RECT-FRAME:WIDTH-CHARS IN FRAME a = FRAME a:WIDTH-CHARS - .5.  /*GUI*/

/*GUI preprocessor Frame A undefine */
&UNDEFINE PP_FRAME_NAME



/* SET EXTERNAL LABELS */
setFrameLabels(frame a:handle).

for first soc_ctrl
   fields (soc_company)
no-lock:
end. /* FOR FIRST soc_ctrl */

global_site = "".

MAINLOOP:
repeat:

   /* SET DEFAULT COMPANY ADDRESS */

   if comp_addr = ""
      and available soc_ctrl
   then
      comp_addr = soc_company.

   v_skipped = 0.

   for each t_absid exclusive-lock:
      delete t_absid.
   end.

   /* RESET THE HIGH VALUES */
   if ship1 = hi_char
   then
      ship1 = "".
   if shipto1 = hi_char
   then
      shipto1 = "".
   if invmov1 = hi_char
   then
      invmov1 = "".
   if fmt1 = hi_char
   then
      fmt1 = "".
   if shipfrom1 = hi_char
   then
      shipfrom1 = "".
   if lang1 = hi_char
   then
      lang1 = "".
   if listtype1 = hi_char
   then
      listtype1 = "".
   if carr1 = hi_char
   then
      carr1 = "".

   update
      shipfrom shipfrom1
      shipto shipto1
      ship ship1
      invmov invmov1
      fmt  fmt1
      lang lang1
      listtype listtype1
      carr carr1
      pick_ship
      printed_prev
      printed_opt
      assign_shipper
      seq_id
      ship_comments
      pack_comments
      l_print_sodet
      l_so_um
      comp_addr
      l_print_lotserials
   with frame a.

   /* VALIDATE THE COMPANY ADDRESS ONLY IF IT IS NOT BLANK */

   if comp_addr <> ""
   then do:
      for first ad_mstr
         fields (ad_addr)
         where ad_addr = comp_addr no-lock:
      end. /* FOR FIRST ad_mstr */

      if not available ad_mstr
      then do:
         /* INVALID COMPANY ADDRESS */
         {pxmsg.i &MSGNUM=3516 &ERRORLEVEL=3}
         next-prompt comp_addr with frame a.
         undo MAINLOOP, retry MAINLOOP.
      end. /* IF NOT AVAILABLE AD_MSTR */

      for first ls_mstr
         fields (ls_addr ls_type)
         where ls_addr = ad_addr and ls_type = "company" no-lock:
      end. /* FOR FIRST ls_mstr */

      if not available ls_mstr
      then do:
         /* INVALID COMPANY ADDRESS */
         {pxmsg.i &MSGNUM=3516 &ERRORLEVEL=3}
         next-prompt comp_addr with frame a.
         undo MAINLOOP, retry MAINLOOP.
      end. /* IF NOT AVAILABLE LS_MSTR */

   end. /* IF comp_addr <> "" */

   if seq_id <> ""
   then do:
      /* Validate sequence ID's */
      run chk_valid (input seq_id, shipper_dataset,
                     output errorst,output errornum).
      if errorst
      then do:
         {pxmsg.i &MSGNUM=errornum &ERRORLEVEL=3 &MSGARG1=seq_id}
         next-prompt seq_id with frame a.
         undo mainloop, retry mainloop.
      end.

      run chk_internal
         (input  seq_id,
          output is_internal,
          output errorst,
          output errornum).
      if errorst
      then do:
         {pxmsg.i &MSGNUM=errornum &ERRORLEVEL=3}
         next-prompt seq_id with frame a.
         undo mainloop, retry mainloop.
      end.
      if not is_internal
      then do:
         {pxmsg.i &MSGNUM=5843 &ERRORLEVEL=3} /* INVALID SEQUENCE */
         next-prompt seq_id with frame a.
         undo mainloop, retry mainloop.
      end.
   end. /* if seq_id <> ""  */

   /* SETUP BATCH PARAMS */
   run upd_batch_params.

   /* SET THE HIGH VALUES */
   if shipfrom1 = ""
   then
      shipfrom1 = hi_char.
   if shipto1 = ""
   then
      shipto1 = hi_char.
   if ship1 = ""
   then
      ship1 = hi_char.
   if lang1 = ""
   then
      lang1 = hi_char.
   if listtype1 = ""
   then
      listtype1 = hi_char.
   if invmov1 = ""
   then
      invmov1 = hi_char.
   if fmt1 = ""
   then
      fmt1 = hi_char.
   if carr1 = ""
   then
      carr1 = hi_char.

   /* OUTPUT DESTINATION SELECTION */
   {gpselout.i &printType = "printer"
               &printWidth = 80
               &pagedFlag = " "
               &stream = " "
               &appendToFile = " "
               &streamedOutputToTerminal = " "
               &withBatchOption = "yes"
               &displayStatementType = 1
               &withCancelMessage = "yes"
               &pageBottomMargin = 6
               &withEmail = "yes"
               &withWinprint = "yes"
               &defineVariables = "yes"}
/*GUI*/ RECT-FRAME:HEIGHT-PIXELS in frame a = FRAME a:HEIGHT-PIXELS - RECT-FRAME:Y in frame a - 2.


   /* SET THE DOCUMENT ID SELECTION RANGES */

   if pick_ship
   then
      assign
         range  = "p"
                 + ship
         range1 = "p"
                 + ship1.
   else
      assign
         range  = "s"
                 + ship.
         range1 = "s"
                 + ship1.

   {gprun.i ""socrshc.p""}

   for first shc_ctrl
     fields(shc_ship_nr_id)
   no-lock:
   end. /* FOR FIRST shc_ctrl */

   SHIPLOOP:
   for each abs_mstr
      fields(abs_canceled abs_format abs_id abs_inv_mov abs_lang
             abs_nr_id abs_shipfrom abs_shipto abs_status abs_type)
      where abs_shipfrom >= shipfrom
        and abs_shipfrom <= shipfrom1
        and abs_type     = "s"
        and abs_shipto   >= shipto
        and abs_shipto   <= shipto1
        and abs_inv_mov  >= invmov
        and abs_inv_mov  <= invmov1
        and abs_format   >= fmt
        and abs_format   <= fmt1
        and abs_lang     >= lang
        and abs_lang     <= lang1
        and abs_id       >= range
        and abs_id       <= range1 no-lock
        break by abs_id:

      /* CHECK FOR PREVIOUSLY PRINTED SHIPPERS */
      if not printed_prev
         and substring(abs_mstr.abs_status,1,1) = "y"
      then
         next SHIPLOOP.

      if abs_canceled
      then
         next SHIPLOOP.

      /* Get the sequence to be used to generate the shipper #
      that is based on the shipping group and inv mov code
      of the shipper record. If data insufficient to find
      the required sequence, default to one on ctrl file */
      if pick_ship
         and (seq_id <> "" or assign_shipper)
      then do:
         {gprun.i ""gpgetgrp.p""
            "(input abs_mstr.abs_shipfrom,
              input abs_mstr.abs_shipto,
              output shipgrp)"}
         assign
            shipgrp =
                     if shipgrp = ?
                     then
                         ""
                     else
                         shipgrp
            nrseq   = shc_ship_nr_id.

         for first sgid_det
            fields(sgid_grp sgid_inv_mov sgid_ship_nr_id)
            where sgid_grp = shipgrp
            and sgid_inv_mov = abs_mstr.abs_inv_mov
         no-lock:
         end. /* FOR FIRST sgid_det */

         if available sgid_det
         then
            nrseq = sgid_ship_nr_id.

         if seq_id <> ""
            and nrseq <> seq_id
         then
            next SHIPLOOP.
      end. /* if pick_ship and ... */

      if seq_id <> ""
         and not pick_ship
         and abs_nr_id <> seq_id
      then
         next SHIPLOOP.

      /* CHECK FOR SHIPTO NOT IN THE LIST TYPE RANGE */
      for first ad_mstr
         fields(ad_addr)
         where ad_addr = abs_shipto
      no-lock:
      end. /* FOR FIRST ad_mstr */

      if not can-find
         (first ls_mstr
          where ls_addr = ad_addr
          and ls_type   >= listtype
          and ls_type   <= listtype1)
      then
         next SHIPLOOP.

      /* If carrier needs to checked, it should be within the range */
      for first absc_det
         fields(absc_abs_id absc_carrier)
         where absc_abs_id = abs_id
      no-lock:
      end. /* FOR FIRST absc_det */
      if
         (if available absc_det
         then
            absc_carrier < carr or absc_carrier > carr1
         else
            carr > "")
         then
            next SHIPLOOP.

      /* ASSIGN A SHIPPER NUMBER IF REQUIRED */
      abs_recid = recid(abs_mstr).

      do transaction:

         find abs_temp
            where recid(abs_temp) = abs_recid
         exclusive-lock no-wait no-error.
         if not available abs_temp
         then do:
            pause 5 no-message.
            find abs_temp
               where recid(abs_temp) = abs_recid
            exclusive-lock no-wait no-error.
            if not available abs_temp
            then do:
               v_skipped = v_skipped + 1.
               next SHIPLOOP.
            end. /* IF NOT AVAILABLE abs_temp */
         end. /* IF NOT AVAILABLE abs_temp */

         if pick_ship
            and assign_shipper
         then do:
           /* nrseq was found earlier in the SHIPLOOP block */
           if can-find (first df_mstr
                         where df_format = abs_mstr.abs_format
                           and df_type = "1"
                           and df_inv)
            then do:
               run get_nr_length
                  (input  nrseq,
                   output id_length,
                   output errorst,
                   output errornum).
               if errorst
               then do:
                  {pxmsg.i &MSGNUM=errornum &ERRORLEVEL=3}
                  undo, retry .
               end. /* IF errorst */

               if id_length > 8
               then
                  next SHIPLOOP.
            end. /* if can-find first df_mstr */

            /* Convert preshipper to shipper */
            {gprun.i
               ""icshcnv.p""
               "(recid(abs_temp),
                 true,
                 """",
                 output v_abort,
                 output errorst,
                 output errornum)" }
            if errorst
               or v_abort
            then
               undo SHIPLOOP, next SHIPLOOP.

            if not can-find
               (t_absid where t_abs_id = abs_temp.abs_id)
            then do:
               create t_absid.
               assign
                  t_abs_id      = abs_temp.abs_id
                  t_abs_recid   = recid(abs_temp)
                  t_abs_printed = substring(abs_temp.abs_status,1,1).
               if recid(t_absid) = -1
               then.
            end. /* IF NOT CAN-FIND t_absid */

         end. /* IF ABS_ID BEGINS "P" AND ASSIGN SHIPPER */

         /* Flag shipper as printed */
         substring(abs_temp.abs_status,1,1) = "y".

      end. /* DO TRANSACTION */

      /* PRINT THE DOCUMENT */

      /* Print shipper using shipper form services */

      {gprun.i
         ""sofspr.p"" "(abs_recid,
           ship_comments,
           pack_comments,
           printed_opt,
           l_print_sodet,
           l_so_um,
           comp_addr,
           l_print_lotserials)" }

      
/*GUI*/ {mfguichk.i } /*Replace mfrpchk*/


   end. /* SHIPLOOP */

   {mfreset.i}
/*GUI*/ {mfgrptrm.i} /*Report-to-Window*/


   if not batchrun
      and v_skipped > 0
   then do:
     /* # RECORDS LOCKED BY OTHER USERS AND NOT PRINTED */
     {pxmsg.i &MSGNUM=1934 &ERRORLEVEL=2 &MSGARG1=v_skipped}
   end.

   /* PROMPT ALL DOCUMENTS PRINTED CORRECTLY */

   if not batchrun
      and pick_ship
      and assign_shipper
   then do
   on endkey undo, retry:
      yn = yes.
      /* HAVE ALL DOCUMENTS PRINTED CORRECTLY */
      {pxmsg.i &MSGNUM=7158 &ERRORLEVEL=1 &CONFIRM=yn}

      if not yn
      then do:
         l_undoshp = false.
         /* UNDO SHIPPER NUMBER ASSIGNMENT */
         {pxmsg.i &MSGNUM=5809 &ERRORLEVEL=1 &MSGARG1=l_undoshp}
         if l_undoshp
         then
            for each t_absid no-lock:
               find abs_mstr
                  where recid(abs_mstr) = t_abs_recid
               exclusive-lock.

               /* Restore preshipper number */
               {gprun.i ""icshunc.p"" "(t_abs_recid)" }

              /* Reset to original print status */

              substring(abs_temp.abs_status,1,1) = t_abs_printed.

            end. /* FOR EACH t_absid */
      end.  /* IF NOT YN */
   end. /* IF NOT BATCHRUN */

end. /* MAINLOOP */

/*****************************************************************
 Update the batch parameter from the screen input
*****************************************************************/
PROCEDURE upd_batch_params:

   bcdparm = "".
   {mfquoter.i shipfrom}
   {mfquoter.i shipfrom1}
   {mfquoter.i shipto }
   {mfquoter.i shipto1}
   {mfquoter.i ship }
   {mfquoter.i ship1}
   {mfquoter.i invmov}
   {mfquoter.i invmov1}
   {mfquoter.i fmt}
   {mfquoter.i fmt1}
   {mfquoter.i lang}
   {mfquoter.i lang1}
   {mfquoter.i listtype}
   {mfquoter.i listtype1}
   {mfquoter.i carr}
   {mfquoter.i carr1}
   {mfquoter.i pick_ship}
   {mfquoter.i printed_prev}
   {mfquoter.i printed_opt}
   {mfquoter.i assign_shipper}
   {mfquoter.i seq_id}
   {mfquoter.i ship_comments}
   {mfquoter.i pack_comments}
   {mfquoter.i l_print_sodet}
   {mfquoter.i l_so_um}
   {mfquoter.i comp_addr}
   {mfquoter.i l_print_lotserials}

END PROCEDURE. /* procedure upd_batch_params */

/* Internal procedures for accessing NR attributes */
{gpnrseq.i}

/* Internal procedures to generate/validate a new shipper # */
{gpnbrgen.i}
